package com.ssd.controller.operation;


import com.ssd.entity.Activity;
import com.ssd.entity.dto.request.ActivityQueryForPageReqDTO;
import com.ssd.entity.dto.request.ActivitySaveReqDTO;
import com.ssd.entity.dto.response.ActivityInfoResDTO;
import com.ssd.service.IActivityService;
import com.ssd.viewmodel.Pager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * <p>
 * 运营端-优惠券活动表 前端控制器
 * </p>
 *
 * @author author
 * @since 2024-11-21
 */
@RestController("operationActivityController")
@RequestMapping("/operation/activity")
@Api(tags = "运营端-优惠券活动表控制器")
@Validated
public class ActivityController {

    @Resource
    private IActivityService activityService;


    /**
     * 分页条件动态查询活动列表
     * @param activityQueryForPageReqDTO 分页条件查询参数
     * @return
     */
        @GetMapping("/page")
    @ApiOperation(value = "分页查询优惠券活动列表")
    public Pager<Activity> queryForPage(ActivityQueryForPageReqDTO activityQueryForPageReqDTO){
        return activityService.queryForPage(activityQueryForPageReqDTO);
    }

    /**
     * 根据活动id查询活动详情
     * @param id 活动id
     * @return
     */
    @GetMapping("/{id}")
    @ApiOperation(value = "查询活动详情")
    public Activity getDetail(@PathVariable("id") Long id){
        return activityService.queryById(id);
    }

    /**
     * 保存或者修改活动
     * @param activitySaveReqDTO 活动数据
     * @return
     */
    @PostMapping("/save")
    @ApiOperation(value = "保存活动信息")
    public void save(  @RequestBody ActivitySaveReqDTO activitySaveReqDTO){
        activityService.save(activitySaveReqDTO);
    }

    /**
     * 撤销指定活动
     * @param id 活动id
     * @return
     */
    @PostMapping("/revoke/{id}")
    @ApiOperation(value = "活动撤销")
    public void revoke(@PathVariable("id") Long id){
        activityService.revoke(id);
    }

}
